Method and apparatus for entropy encoding using hierarchical data unit, and method and apparatus for decoding

ABSTRACT

Provided are video encoding and decoding methods and apparatuses. The video encoding method includes: encoding a video based on data units having a hierarchical structure; determining a context model used for entropy encoding a syntax element of a data unit based on at least one piece of additional information of the data units; and entropy encoding the syntax element by using the determined context model.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. application Ser.No. 14/130,541, filed Mar. 21, 2014, which is a 371 National StageApplication of PCT/KR2012/005255, filed Jul. 2, 2012, which claimspriority to U.S. Provisional Application No. 61/503,685, filed Jul. 1,2011, and U.S. Provisional Application No. 61/548,423, filed Oct. 18,2011, each of which is incorporated herein by reference in its entirety.

TECHNICAL FIELD

The present invention relates to encoding and decoding a video, and moreparticularly, to entropy encoding and entropy decoding syntax elementsforming video data.

BACKGROUND ART

In image compressing methods, such as MPEG-1, MPEG-2, and MPEG-4H.264/MPEG-4 advanced video coding (AVC), an image is divided into aplurality of blocks having predetermined sizes, and then residual dataof the blocks are obtained via inter prediction or intra prediction. Theresidual data is compressed via transformation, quantization, scanning,run length coding, and entropy encoding. During the entropy encoding, abitstream is output by entropy encoding syntax elements, such asdiscrete cosine transform (DCT) coefficients or motion vectors. In termsof a decoder, syntax elements are extracted from a bitstream, anddecoding is performed based on the extracted syntax elements.

DETAILED DESCRIPTION OF THE INVENTION Technical Problem

The present invention provides a method and apparatus for combiningadditional information including syntax elements to select a contextmodel to be used for entropy encoding the syntax elements, therebyefficiently entropy encoding and decoding the syntax elements.

Technical Solution

According to one or more embodiments of the present invention, a contextmodel for entropy encoding a syntax element of a current data unit basedon an available syntax element of the current data unit.

Advantageous Effects

According to one or more embodiments of the present invention, arequired size of a memory for storing pre-restored peripheralinformation may be reduced by selecting a context model based oninformation about a data unit including a current syntax element,instead of using the previously restored peripheral information.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a video encoding apparatus according to anembodiment of the present invention.

FIG. 2 is a block diagram of a video decoding apparatus according to anembodiment of the present invention.

FIG. 3 is a diagram for describing a concept of coding units accordingto an embodiment of the present invention.

FIG. 4 is a detailed block diagram of an image encoder based on codingunits having a hierarchical structure according to an embodiment of thepresent invention.

FIG. 5 is a detailed block diagram of an image decoder based on codingunits having a hierarchical structure according to an embodiment of thepresent invention.

FIG. 6 is a diagram illustrating deeper coding units according todepths, and partitions according to an embodiment of the presentinvention.

FIG. 7 is a diagram for describing a relationship between a coding unitand transformation units, according to an embodiment of the presentinvention.

FIG. 8 is a diagram for describing encoding information of coding unitscorresponding to a coded depth, according to an embodiment of thepresent invention.

FIG. 9 is a diagram of deeper coding units according to depths,according to an embodiment of the present invention.

FIGS. 10 through 12 are diagrams for describing a relationship betweencoding units, prediction units, and transformation units, according toan embodiment of the present invention.

FIG. 13 is a diagram for describing a relationship between a codingunit, a prediction unit or a partition, and a transformation unit,according to encoding mode information of Table 1.

FIG. 14 is a block diagram of an entropy encoding apparatus according toan embodiment of the present invention.

FIG. 15 is a block diagram of a context modeler of FIG. 14.

FIG. 16 is a diagram for describing a data unit having a hierarchicalstructure and data unit split information having a hierarchicalstructure, according to an embodiment of the present invention.

FIGS. 17A and 17B are reference diagrams of symbols indicating ahierarchical structure of data units, according to embodiments of thepresent invention.

FIGS. 18A and 18B are diagrams of context indexes for determining acontext model according to a combination of additional information,according to embodiments of the present invention.

FIG. 19 is a reference diagram of a context model according to anembodiment of the present invention.

FIG. 20 is a graph of a probability value of a most probable symbol(MPS) according to an embodiment of the present invention.

FIG. 21 is a diagram for describing a binary arithmetic encodingoperation performed by a regular coding engine of FIG. 14.

FIG. 22 is a flowchart illustrating an entropy encoding method accordingto an embodiment of the present invention.

FIG. 23 is a block diagram of an entropy decoding apparatus according toan embodiment of the present invention.

FIG. 24 is a flowchart illustrating an entropy decoding method accordingto an embodiment of the present invention.

BEST MODE

According to an aspect of the present invention, there is provided avideo encoding method including: encoding a video based on data unitshaving a hierarchical structure; determining a context model used forentropy encoding of a first syntax element of a current data unit to beentropy-encoded based on at least one second syntax element of thecurrent data unit, wherein the at least one second syntax element isusable and different from the first syntax element of the current dataunit; and entropy encoding the first syntax element of the current dataunit by using the determined context model.

According to another aspect of the present invention, there is provideda video encoding apparatus including: a hierarchical encoder forencoding a video based on data units having a hierarchical structure;and an entropy encoder for determining a context model used for entropyencoding of a first syntax element of a current data unit to beentropy-encoded based on at least one second syntax element of thecurrent data unit, wherein the at least one second syntax element isusable and different from the first syntax element of the current dataunit, and entropy encoding the first syntax element of the current dataunit by using the determined context model.

According to another aspect of the present invention, there is provideda video decoding method including: extracting syntax elements of apicture encoded based on data units having a hierarchical structure byparsing an encoded bitstream; determining a context model used toentropy decode a first syntax element of a current data unit to beentropy-decoded based on at least one second syntax element of thecurrent data unit, wherein the at least one second syntax element isusable and different from the first syntax element of the current dataunit; and entropy decoding the first syntax element by using thedetermined context model.

According to another aspect of the present invention, there is provideda video decoding apparatus including: an syntax element extractor forextracting syntax elements of a picture encoded based on data unitshaving a hierarchical structure by parsing an encoded bitstream; and anentropy decoder for determining a context model used to entropy decode afirst syntax element of a current data unit to be entropy-decoded basedon at least one second syntax element of the current data unit, whereinthe at least one second syntax element is usable and different from thefirst syntax element of the current data unit, and entropy decoding thefirst syntax element by using the determined context model.

Mode of the Invention

Hereinafter, an ‘image’ used in various embodiments of the presentinvention may not only denote a still image, but may also denote amoving image, such as a video.

When various operations are performed on data related to an image, thedata related to the image may be divided into data groups, and the sameoperation may be performed on data included in the same data group.Hereinafter, a data group formed according to a predetermined standardis referred to as a ‘data unit’. Also, an operation performed accordingto ‘data units’ is performed by using data included in a correspondingdata unit.

Hereinafter, video encoding and decoding methods and apparatuses forencoding and decoding syntax elements having a tree structure based oncoding units according to a hierarchical tree structure, according toembodiments of the present invention will be described with reference toFIGS. 1 through 13. Also, entropy encoding and decoding processes usedin the video encoding and decoding methods of FIGS. 1 through 14 will bedescribed in detail with reference to FIGS. 14 through 24.

FIG. 1 is a block diagram of a video encoding apparatus 100 according toan embodiment of the present invention.

The video encoding apparatus 100 includes a hierarchical encoder 110 andan entropy encoder 120.

The hierarchical encoder 110 splits a current picture to be encoded intodata units having predetermined sizes, and encodes the data units. Indetail, the hierarchical encoder 110 may split a current picture basedon a maximum coding unit. The maximum coding unit according to anembodiment of the present invention may be a data unit having a size of32×32, 64×64, 128×128, 256×256, etc., wherein a shape of the data unitis a square having a width and a length that are each a multiple of 2and greater than 8.

A coding unit according to an embodiment of the present invention may becharacterized by a maximum size and a depth. The depth denotes a numberof times the coding unit is spatially split from the maximum codingunit, and as the depth deepens, deeper encoding units according todepths may be split from the maximum coding unit to a minimum codingunit. A depth of the maximum coding unit is an uppermost depth and adepth of the minimum coding unit is a lowermost depth. Since a size of acoding unit corresponding to each depth decreases as the depth of themaximum coding unit deepens, a coding unit corresponding to an upperdepth may include a plurality of coding units corresponding to lowerdepths.

As described above, the image data of the current picture is split intothe maximum coding units according to a maximum size of the coding unit,and each of the maximum coding units may include deeper coding unitsthat are split according to depths. Since the maximum coding unitaccording to an embodiment of the present invention is split accordingto depths, the image data of a spatial domain included in the maximumcoding unit may be hierarchically classified according to depths.

A maximum depth and a maximum size of a coding unit, which limit thetotal number of times a height and a width of the maximum coding unitare hierarchically split may be predetermined.

The hierarchical encoder 110 encodes at least one split region obtainedby splitting a region of the maximum coding unit according to depths,and determines a depth to output a finally encoded image data accordingto the at least one split region. In other words, the hierarchicalencoder 110 determines a coded depth by encoding the image data in thedeeper coding units according to depths, according to the maximum codingunit of the current picture, and selecting a depth having the leastencoding error. Thus, the encoded image data of the coding unitcorresponding to the determined coded depth is finally output. Also, thecoding units corresponding to the coded depth may be regarded as encodedcoding units. The determined coded depth and the encoded image dataaccording to the determined coded depth are output to the entropyencoder 120.

The image data in the maximum coding unit is encoded based on the deepercoding units corresponding to at least one depth equal to or below themaximum depth, and results of encoding the image data are compared basedon each of the deeper coding units. A depth having the least encodingerror may be selected after comparing encoding errors of the deepercoding units. At least one coded depth may be selected for each maximumcoding unit.

The size of the maximum coding unit is split as a coding unit ishierarchically split according to depths, and as the number of codingunits increases. Also, even if coding units correspond to same depth inone maximum coding unit, it is determined whether to split each of thecoding units corresponding to the same depth to a lower depth bymeasuring an encoding error of the image data of the each coding unit,separately. Accordingly, even when image data is included in one maximumcoding unit, the image data is split to regions according to the depthsand the encoding errors may differ according to regions in the onemaximum coding unit, and thus the coded depths may differ according toregions in the image data. Thus, one or more coded depths may bedetermined in one maximum coding unit, and the image data of the maximumcoding unit may be divided according to coding units of at least onecoded depth.

Accordingly, the hierarchical encoder 110 may determine coding unitshaving a tree structure included in the maximum coding unit. The ‘codingunits having a tree structure’ according to an embodiment of the presentinvention include coding units corresponding to a depth determined to bethe coded depth, from among all deeper coding units included in themaximum coding unit. A coding unit of a coded depth may behierarchically determined according to depths in the same region of themaximum coding unit, and may be independently determined in differentregions. Similarly, a coded depth in a current region may beindependently determined from a coded depth in another region.

A maximum depth according to an embodiment of the present invention isan index related to the number of splitting times from a maximum codingunit to a minimum coding unit. A first maximum depth according to anembodiment of the present invention may denote the total number ofsplitting times from the maximum coding unit to the minimum coding unit.A second maximum depth according to an embodiment of the presentinvention may denote the total number of depth levels from the maximumcoding unit to the minimum coding unit. For example, when a depth of themaximum coding unit is 0, a depth of a coding unit, in which the maximumcoding unit is split once, may be set to 1, and a depth of a codingunit, in which the maximum coding unit is split twice, may be set to 2.Here, if the minimum coding unit is a coding unit in which the maximumcoding unit is split four times, 5 depth levels of depths 0, 1, 2, 3 and4 exist, and thus the first maximum depth may be set to 4, and thesecond maximum depth may be set to 5.

Prediction encoding and transformation may be performed according to themaximum coding unit. The prediction encoding and the transformation arealso performed based on the deeper coding units according to a depthequal to or depths less than the maximum depth, according to the maximumcoding unit. Transformation may be performed according to method oforthogonal transformation or integer transformation.

Since the number of deeper coding units increases whenever the maximumcoding unit is split according to depths, encoding including theprediction encoding and the transformation is performed on all of thedeeper coding units generated as the depth deepens. For convenience ofdescription, the prediction encoding and the transformation will now bedescribed based on a coding unit of a current depth, in a maximum codingunit.

The video encoding apparatus 100 may variously select a size or shape ofa data unit for encoding the image data. In order to encode the imagedata, operations, such as prediction encoding, transformation, andentropy encoding, are performed, and at this time, the same data unitmay be used for all operations or different data units may be used foreach operation.

For example, the video encoding apparatus 100 may select not only acoding unit for encoding the image data, but also a data unit differentfrom the coding unit so as to perform the prediction encoding on theimage data in the coding unit.

In order to perform prediction encoding in the maximum coding unit, theprediction encoding may be performed based on a coding unitcorresponding to a coded depth, i.e., based on a coding unit that is nolonger split to coding units corresponding to a lower depth.Hereinafter, the coding unit that is no longer split and becomes a basisunit for prediction encoding will now be referred to as a ‘predictionunit’. A partition obtained by splitting the prediction unit may includea prediction unit or a data unit obtained by splitting at least one of aheight and a width of the prediction unit.

For example, when a coding unit of 2N×2N (where N is a positive integer)is no longer split and becomes a prediction unit of 2N×2N, and a size ofa partition may be 2N×2N, 2N×N, N×2N, or N×N. Examples of a partitiontype include symmetrical partitions that are obtained by symmetricallysplitting a height or width of the prediction unit, partitions obtainedby asymmetrically splitting the height or width of the prediction unit,such as 1:n or n:1, partitions that are obtained by geometricallysplitting the prediction unit, and partitions having arbitrary shapes.

A prediction mode of the prediction unit may be at least one of an intramode, a inter mode, and a skip mode. For example, the intra mode or theinter mode may be performed on the partition of 2N×2N, 2N×N, N×2N, orN×N. Also, the skip mode may be performed only on the partition of2N×2N. The encoding is independently performed on one prediction unit ina coding unit, thereby selecting a prediction mode having a leastencoding error.

The video encoding apparatus 100 may also perform the transformation onthe image data in a coding unit based not only on the coding unit forencoding the image data, but also based on a data unit that is differentfrom the coding unit.

In order to perform the transformation in the coding unit, thetransformation may be performed based on a data unit having a sizesmaller than or equal to the coding unit. For example, the data unit forthe transformation may include a data unit for an intra mode and a dataunit for an inter mode.

A data unit used as a base of the transformation will now be referred toas a ‘transformation unit’. A transformation depth indicating the numberof splitting times to reach the transformation unit by splitting theheight and width of the coding unit may also be set in thetransformation unit. For example, in a current coding unit of 2N×2N, atransformation depth may be 0 when the size of a transformation unit isalso 2N×2N, may be 1 when each of the height and width of the currentcoding unit is split into two equal parts, totally split into 4^1transformation units, and the size of the transformation unit is thusN×N, and may be 2 when each of the height and width of the currentcoding unit is split into four equal parts, totally split into 4^2transformation units and the size of the transformation unit is thusN/2×N/2. For example, the transformation unit may be set according to ahierarchical tree structure, in which a transformation unit of an uppertransformation depth is split into four transformation units of a lowertransformation depth according to the hierarchical characteristics of atransformation depth.

Similarly to the coding unit, the transformation unit in the coding unitmay be recursively split into smaller sized regions, so that thetransformation unit may be determined independently in units of regions.Thus, residual data in the coding unit may be divided according to thetransformation having the tree structure according to transformationdepths.

Encoding information according to coding units corresponding to a codeddepth requires not only information about the coded depth, but alsoabout information related to prediction encoding and transformation.Accordingly, the hierarchical encoder 110 not only determines a codeddepth having a least encoding error, but also determines a partitiontype in a prediction unit, a prediction mode according to predictionunits, and a size of a transformation unit for transformation.

Coding units according to a tree structure in a maximum coding unit anda method of determining a partition, according to embodiments of thepresent invention, will be described in detail later with reference toFIGS. 3 through 12.

The hierarchical encoder 110 may measure an encoding error of deepercoding units according to depths by using Rate-Distortion Optimizationbased on Lagrangian multipliers.

The entropy encoder 120 outputs the image data of the maximum codingunit, which is encoded based on the at least one coded depth determinedby the coding unit determiner 120, and information about the encodingmode according to the coded depth, in bitstreams. The encoded image datamay be obtained by encoding residual data of an image. The informationabout the encoding mode according to coded depth may include informationabout the coded depth, about the partition type in the prediction unit,the prediction mode, and the size of the transformation unit. In detail,as described below the entropy encoder 120 selects a context model basedon additional information of a current data unit, such as informationabout the hierarchical structure of the data units and about a colorcomponent used in a video encoding method, and performs entropyencoding, while encoding the image data of the maximum coding unit andsyntax elements about the encoding mode according to depths. Here, theentropy encoder 120 may determine the context model for entropy encodingthe syntax elements of the current coding unit by considering additionalinformation of the current coding unit as well as additional informationof an adjacent coding unit. A process of determining the context modelfor entropy encoding the syntax elements will be described in detaillater.

The information about the coded depth may be defined by using splitinformation according to depths, which indicates whether encoding isperformed on coding units of a lower depth instead of a current depth.If the current depth of the current coding unit is the coded depth,image data in the current coding unit is encoded and output, and thusthe split information may be defined not to split the current codingunit to a lower depth. Alternatively, if the current depth of thecurrent coding unit is not the coded depth, the encoding is performed onthe coding unit of the lower depth, and thus the split information maybe defined to split the current coding unit to obtain the coding unitsof the lower depth.

If the current depth is not the coded depth, encoding is performed onthe coding unit that is split into the coding unit of the lower depth.Since at least one coding unit of the lower depth exists in one codingunit of the current depth, the encoding is repeatedly performed on eachcoding unit of the lower depth, and thus the encoding may be recursivelyperformed for the coding units having the same depth.

Since the coding units having a tree structure are determined for onemaximum coding unit, and information about at least one encoding mode isdetermined for a coding unit of a coded depth, information about atleast one encoding mode may be determined for one maximum coding unit.Also, a coded depth of the image data of the maximum coding unit may bedifferent according to locations since the image data is hierarchicallysplit according to depths, and thus information about the coded depthand the encoding mode may be set for the image data.

Accordingly, the entropy encoder 120 may assign encoding informationabout a corresponding coded depth and an encoding mode to at least oneof the coding unit, the prediction unit, and a minimum unit included inthe maximum coding unit.

The minimum unit according to an embodiment of the present invention maybe a rectangular data unit obtained by splitting the minimum coding unitconstituting the lowermost depth by 4, and may be a maximum rectangulardata unit that may be included in all of the coding units, predictionunits, partition units, and transformation units included in the maximumcoding unit.

For example, the encoding information output through the entropy encoder120 may be classified into encoding information according to codingunits, and encoding information according to prediction units. Theencoding information according to the coding units may include theinformation about the prediction mode and about the size of thepartitions. The encoding information according to the prediction unitsmay include information about an estimated direction of an inter mode,about a reference image index of the inter mode, about a motion vector,about a chroma component of an intra mode, and about an interpolationmethod of the intra mode. Also, information about a maximum size of thecoding unit defined according to pictures, slices, or GOPs, andinformation about a maximum depth may be inserted into a header of abitstream.

In the video encoding apparatus 100, the deeper coding unit may be acoding unit obtained by dividing a height or width of a coding unit ofan upper depth, which is one layer above, by two. In other words, whenthe size of the coding unit of the current depth is 2N×2N, the size ofthe coding unit of the lower depth is N×N. Also, the coding unit of thecurrent depth having the size of 2N×2N may include maximum 4 of thecoding unit of the lower depth.

Accordingly, the video encoding apparatus 100 may form the coding unitshaving the tree structure by determining coding units having an optimumshape and an optimum size for each maximum coding unit, based on thesize of the maximum coding unit and the maximum depth determinedconsidering characteristics of the current picture. Also, since encodingmay be performed on each maximum coding unit by using any one of variousprediction modes and transformations, an optimum encoding mode may bedetermined considering characteristics of the coding unit of variousimage sizes.

Thus, if an image having high resolution or large data amount is encodedin a conventional macroblock, a number of macroblocks per pictureexcessively increases. Accordingly, a number of pieces of compressedinformation generated for each macroblock increases, and thus it isdifficult to transmit the compressed information and data compressionefficiency decreases. However, by using the video encoding apparatus100, image compression efficiency may be increased since a coding unitis adjusted while considering characteristics of an image whileincreasing a maximum size of a coding unit while considering a size ofthe image.

FIG. 2 is a block diagram of a video decoding apparatus 200 according toan embodiment of the present invention.

The video decoding apparatus 200 includes a syntax element extractor210, an entropy decoder 220, and a hierarchical decoder 230. Definitionsof various terms, such as a coding unit, a depth, a prediction unit, atransformation unit, and information about various encoding modes, forvarious operations of the video decoding apparatus 200 are identical tothose described with reference to FIG. 1 and the video encodingapparatus 100.

The syntax element extractor 210 receives and parses a bitstream of anencoded video. The entropy decoder 220 extracts encoded image data foreach coding unit from the parsed bitstream, wherein the coding unitshave a tree structure according to each maximum coding unit, and outputsthe extracted image data to the hierarchical decoder 230.

Also, the entropy decoder 220 extracts additional information about acoded depth, an encoding mode, a color component, and a prediction modefor the coding units having a tree structure according to each maximumcoding unit, from the parsed bitstream. The extracted additionalinformation is output to the hierarchical decoder 230. In other words,the image data in a bit stream is split into the maximum coding unit andthen encoded so that the hierarchical decoder 230 decodes the image datafor each maximum coding unit.

The information about the coded depth and the encoding mode according tothe maximum coding unit may be set for information about at least onecoding unit corresponding to the coded depth, and information about anencoding mode may include information about a partition type of acorresponding coding unit corresponding to the coded depth, about aprediction mode, and a size of a transformation unit. Also, splittinginformation according to depths may be extracted as the informationabout the coded depth.

The information about the coded depth and the encoding mode according toeach maximum coding unit extracted by the entropy decoder 220 isinformation about a coded depth and an encoding mode determined togenerate a minimum encoding error when an encoder, such as the videoencoding apparatus 100, repeatedly performs encoding for each deepercoding unit according to depths according to each maximum coding unit.Accordingly, the video decoding apparatus 200 may restore an image bydecoding the image data according to a coded depth and an encoding modethat generates the minimum encoding error.

Since encoding information about the coded depth and the encoding modemay be assigned to a predetermined data unit from among a correspondingcoding unit, a prediction unit, and a minimum unit, the entropy decoder220 may extract the information about the coded depth and the encodingmode according to the predetermined data units. The predetermined dataunits to which the same information about the coded depth and theencoding mode is assigned may be inferred to be the data units includedin the same maximum coding unit.

In detail, as described below, the entropy decoder 220 selects a contextmodel and performs entropy decoding based on various types ofinformation, such as information about a hierarchical structure of dataunits described above and about color components, while decoding syntaxelements.

The hierarchical decoder 230 restores the current picture by decodingthe image data in each maximum coding unit based on the informationabout the coded depth and the encoding mode according to the maximumcoding units. In other words, the image data decoder 230 may decode theencoded image data based on the extracted information about thepartition type, the prediction mode, and the transformation unit foreach coding unit from among the coding units having the tree structureincluded in each maximum coding unit. A decoding process may include aprediction including intra prediction and motion compensation, and aninverse transformation. Inverse transformation may be performedaccording to method of inverse orthogonal transformation or inverseinteger transformation.

The hierarchical decoder 230 may perform intra prediction or motioncompensation according to a partition and a prediction mode of eachcoding unit, based on the information about the partition type and theprediction mode of the prediction unit of the coding unit according tocoded depths.

Also, the hierarchical decoder 230 may perform inverse transformationaccording to each transformation unit in the coding unit, based on theinformation about the size of the transformation unit of the coding unitaccording to coded depths, so as to perform the inverse transformationaccording to maximum coding units.

The hierarchical decoder 230 may determine at least one coded depth of acurrent maximum coding unit by using split information according todepths. If the split information indicates that image data is no longersplit in the current depth, the current depth is a coded depth.Accordingly, the hierarchical decoder 230 may decode encoded data of atleast one coding unit corresponding to the each coded depth in thecurrent maximum coding unit by using the information about the partitiontype of the prediction unit, the prediction mode, and the size of thetransformation unit for each coding unit corresponding to the codeddepth, and output the image data of the current maximum coding unit.

That is, data units containing the encoding information including thesame split information may be gathered by observing the encodinginformation set assigned for the predetermined data unit from among thecoding unit, the prediction unit, and the minimum unit, and the gathereddata units may be considered to be one data unit to be decoded by thehierarchical decoder 230 in the same encoding mode.

The video decoding apparatus 200 may obtain information about at leastone coding unit that generates the minimum encoding error when encodingis recursively performed for each maximum coding unit, and may use theinformation to decode the current picture. In other words, the codingunits having the tree structure determined to be the optimum codingunits in each maximum coding unit may be decoded. Also, the maximum sizeof coding unit is determined considering resolution and an amount ofimage data.

Accordingly, even if image data has high resolution and a large amountof data, the image data may be efficiently decoded and restored by usinga size of a coding unit and an encoding mode, which are adaptivelydetermined according to characteristics of the image data, by usinginformation about an optimum encoding mode received from an encoder.

A method of determining coding units having a tree structure, aprediction unit, and a transformation unit, according to an embodimentof the present invention, will now be described with reference to FIGS.3 through 13.

FIG. 3 is a diagram for describing a concept of coding units accordingto an embodiment of the present invention.

A size of a coding unit may be expressed in width×height, and may be64×64, 32×32, 16×16, and 8×8. A coding unit of 64×64 may be split intopartitions of 64×64, 64×32, 32×64, or 32×32, and a coding unit of 32×32may be split into partitions of 32×32, 32×16, 16×32, or 16×16, a codingunit of 16×16 may be split into partitions of 16×16, 16×8, 8×16, or 8×8,and a coding unit of 8×8 may be split into partitions of 8×8, 8×4, 4×8,or 4×4.

In video data 310, a resolution is 1920×1080, a maximum size of a codingunit is 64, and a maximum depth is 2. In video data 320, a resolution is1920×1080, a maximum size of a coding unit is 64, and a maximum depth is3. In video data 330, a resolution is 352×288, a maximum size of acoding unit is 16, and a maximum depth is 1. The maximum depth shown inFIG. 3 denotes a total number of splits from a maximum coding unit to aminimum decoding unit.

If a resolution is high or a data amount is large, a maximum size of acoding unit may be large so as to increase encoding efficiency and toaccurately reflect characteristics of an image. Accordingly, the maximumsize of the coding unit of the video data 310 and 320 having the higherresolution than the video data 330 may be 64.

Since the maximum depth of the video data 310 is 2, coding units 315 ofthe vide data 310 may include a maximum coding unit having a long axissize of 64, and coding units having long axis sizes of 32 and 16 sincedepths are deepened to two layers by splitting the maximum coding unittwice. Meanwhile, since the maximum depth of the video data 330 is 1,coding units 335 of the video data 330 may include a maximum coding unithaving a long axis size of 16, and coding units having a long axis sizeof 8 since depths are deepened to one layer by splitting the maximumcoding unit once.

Since the maximum depth of the video data 320 is 3, coding units 325 ofthe video data 320 may include a maximum coding unit having a long axissize of 64, and coding units having long axis sizes of 32, 16, and 8since the depths are deepened to 3 layers by splitting the maximumcoding unit three times. As a depth deepens, detailed information may beprecisely expressed.

FIG. 4 is a detailed block diagram of an image encoder 400 based oncoding units having a hierarchical structure according to an embodimentof the present invention.

An intra predictor 410 performs intra prediction on coding units in anintra mode, from among a current frame 405, and a motion estimator 420and a motion compensator 425 performs inter estimation and motioncompensation on coding units in an inter mode from among the currentframe 405 by using the current frame 405, and a reference frame 495.

Data output from the intra predictor 410, the motion estimator 420, andthe motion compensator 425 is output as a quantized transformationcoefficient through a transformer 430 and a quantizer 440. The quantizedtransformation coefficient is restored as data in a spatial domainthrough an inverse quantizer 460 and an inverse transformer 470, and therestored data in the spatial domain is output as the reference frame 495after being post-processed through a deblocking unit 480 and a loopfiltering unit 490. The quantized transformation coefficient may beoutput as a bitstream 455 through an entropy encoder 450.

The entropy encoder 450 selects a context model and performs entropydecoding based on various types of information, such as informationabout a hierarchical structure of data units and about color components,while encoding image data of a maximum coding unit and syntax elementsabout an encoding mode according to depths.

In order for the image encoder 400 to be applied in the video encodingapparatus 100, all elements of the image encoder 400, i.e., the intrapredictor 410, the motion estimator 420, the motion compensator 425, thetransformer 430, the quantizer 440, the entropy encoder 450, the inversequantizer 460, the inverse transformer 470, the deblocking unit 480, andthe loop filtering unit 490 perform operations based on each coding unitfrom among coding units having a tree structure while considering themaximum depth of each maximum coding unit.

Specifically, the intra predictor 410, the motion estimator 420, and themotion compensator 425 determines partitions and a prediction mode ofeach coding unit from among the coding units having a tree structurewhile considering the maximum size and the maximum depth of a currentmaximum coding unit, and the transformer 430 determines the size of thetransformation unit in each coding unit from among the coding unitshaving a tree structure. Also, the entropy encoder 450 selects a contextmodel used to entropy encode syntax elements and performs entropyencoding, based on various types of information, such as informationabout a hierarchical structure of data units and about color components,according to types of the syntax elements.

FIG. 5 is a detailed block diagram of an image decoder 500 based oncoding units having a hierarchical structure according to an embodimentof the present invention.

A parser 510 parses encoded image data to be decoded and informationabout encoding required for decoding from a bitstream 505. The encodedimage data is output as inverse quantized data through the entropydecoder 520 and an inverse quantizer 530, and the inverse quantized datais restored to image data in a spatial domain through an inversetransformer 540.

An intra predictor 550 performs intra prediction on coding units in anintra mode with respect to the image data in the spatial domain, and amotion compensator 560 performs motion compensation on coding units inan inter mode by using a reference frame 585.

The image data in the spatial domain that are restored while passingthrough the intra predictor 550 and the motion compensator 560 may bepost-processed through a deblocking unit 570 and a loop filtering unit580 and may be output as a restored frame 595. Also, data post-processedthrough the deblocking unit 570 and the loop filtering unit 580 may beoutput as the reference frame 585.

In order for the image decoder 500 to be applied in the video decodingapparatus 200, all elements of the image decoder 500, i.e., the parser510, the entropy decoder 520, the inverse quantizer 530, the inversetransformer 540, the intra predictor 550, the motion compensator 560,the deblocking unit 570, and the loop filtering unit 580 may performdecoding operations based on coding units having a tree structure foreach maximum coding unit.

Specifically, the intra prediction 550 and the motion compensator 560may determine partitions and a prediction mode for each of the codingunits having a tree structure, and the inverse transformer 540 maydetermine a size of a transformation unit for each coding unit. Also,the entropy decoder 520 selects a context model used to entropy decodeencoded image data to be decoded and syntax elements indicating encodinginformation required for decoding, and performs entropy decoding, basedon various types of information, such as information about ahierarchical structure of data units and about color components,according to types of the syntax elements.

FIG. 6 is a diagram illustrating deeper coding units according todepths, and partitions, according to an embodiment of the presentinvention.

The video encoding apparatus 100 and the video decoding apparatus 200use hierarchical coding units so as to consider characteristics of animage. A maximum height, a maximum width, and a maximum depth of codingunits may be adaptively determined according to the characteristics ofthe image, or may be differently set by a user. Sizes of deeper codingunits according to depths may be determined according to thepredetermined maximum size of the coding unit.

In a hierarchical structure 600 of coding units, according to anembodiment of the present invention, the maximum height and the maximumwidth of the coding units are each 64, and the maximum depth is 4. Sincea depth deepens along a vertical axis of the hierarchical structure 600,a height and a width of the deeper coding unit are each split. Also, aprediction unit and partitions, which are bases for prediction encodingof each deeper coding unit, are shown along a horizontal axis of thehierarchical structure 600.

In other words, a coding unit 610 is a maximum coding unit in thehierarchical structure 600, wherein a depth is 0 and a size, i.e., aheight by width, is 64×64. The depth deepens along the vertical axis,and a coding unit 620 having a size of 32×32 and a depth of 1, a codingunit 630 having a size of 16×16 and a depth of 2, a coding unit 640having a size of 8×8 and a depth of 3, and a coding unit 650 having asize of 4×4 and a depth of 4 exist. The coding unit 650 having the sizeof 4×4 and the depth of 4 is a minimum coding unit.

The prediction unit and the partitions of a coding unit are arrangedalong the horizontal axis according to each depth. In other words, ifthe coding unit 610 having the size of 64×64 and the depth of 0 is aprediction unit, the prediction unit may be split into partitionsinclude in the encoding unit 610, i.e. a partition 610 having a size of64×64, partitions 612 having the size of 64×32, partitions 614 havingthe size of 32×64, or partitions 616 having the size of 32×32.

Similarly, a prediction unit of the coding unit 620 having the size of32×32 and the depth of 1 may be split into partitions included in thecoding unit 620, i.e. a partition 620 having a size of 32×32, partitions622 having a size of 32×16, partitions 624 having a size of 16×32, andpartitions 626 having a size of 16×16.

Similarly, a prediction unit of the coding unit 630 having the size of16×16 and the depth of 2 may be split into partitions included in thecoding unit 630, i.e. a partition having a size of 16×16 included in thecoding unit 630, partitions 632 having a size of 16×8, partitions 634having a size of 8×16, and partitions 636 having a size of 8×8.

Similarly, a prediction unit of the coding unit 640 having the size of8×8 and the depth of 3 may be split into partitions included in thecoding unit 640, i.e. a partition having a size of 8×8 included in thecoding unit 640, partitions 642 having a size of 8×4, partitions 644having a size of 4×8, and partitions 646 having a size of 4×4.

The coding unit 650 having the size of 4×4 and the depth of 4 is theminimum coding unit and a coding unit of the lowermost depth. Aprediction unit of the coding unit 650 is only assigned to a partitionhaving a size of 4×4.

In order to determine the at least one coded depth of the coding unitsconstituting the maximum coding unit 610, the coding unit determiner 120of the video encoding apparatus 100 performs encoding for coding unitscorresponding to each depth included in the maximum coding unit 610.

A number of deeper coding units according to depths including data inthe same range and the same size increases as the depth deepens. Forexample, four coding units corresponding to a depth of 2 are required tocover data that is included in one coding unit corresponding to a depthof 1. Accordingly, in order to compare encoding results of the same dataaccording to depths, the coding unit corresponding to the depth of 1 andfour coding units corresponding to the depth of 2 are each encoded.

In order to perform encoding for a current depth from among the depths,a least encoding error may be selected for the current depth byperforming encoding for each prediction unit in the coding unitscorresponding to the current depth, along the horizontal axis of thehierarchical structure 600. Alternatively, the minimum encoding errormay be searched for by comparing the least encoding errors according todepths, by performing encoding for each depth as the depth deepens alongthe vertical axis of the hierarchical structure 600. A depth and apartition having the minimum encoding error in the coding unit 610 maybe selected as the coded depth and a partition type of the coding unit610.

FIG. 7 is a diagram for describing a relationship between a coding unit710 and transformation units 720, according to an embodiment of thepresent invention.

The video encoding apparatus 100 or 200 encodes or decodes an imageaccording to coding units having sizes smaller than or equal to amaximum coding unit for each maximum coding unit. Sizes oftransformation units for transformation during encoding may be selectedbased on data units that are not larger than a corresponding codingunit.

For example, in the video encoding apparatus 100 or 200, if a size ofthe coding unit 710 is 64×64, transformation may be performed by usingthe transformation units 720 having a size of 32×32.

Also, data of the coding unit 710 having the size of 64×64 may beencoded by performing the transformation on each of the transformationunits having the size of 32×32, 16×16, 8×8, and 4×4, which are smallerthan 64×64, and then a transformation unit having the least coding errormay be selected.

FIG. 8 is a diagram for describing encoding information of coding unitscorresponding to a coded depth, according to an embodiment of thepresent invention.

The output unit 130 of the video encoding apparatus 100 may encode andtransmit information 800 about a partition type, information 810 about aprediction mode, and information 820 about a size of a transformationunit for each coding unit corresponding to a coded depth, as informationabout an encoding mode.

The information 800 indicates information about a shape of a partitionobtained by splitting a prediction unit of a current coding unit,wherein the partition is a data unit for prediction encoding the currentcoding unit. For example, a current coding unit CU_0 having a size of2N×2N may be split into any one of a partition 802 having a size of2N×2N, a partition 804 having a size of 2N×N, a partition 806 having asize of N×2N, and a partition 808 having a size of N×N. Here, theinformation 800 about a partition type is set to indicate one of thepartition 804 having a size of 2N×N, the partition 806 having a size ofN×2N, and the partition 808 having a size of N×N

The information 810 indicates a prediction mode of each partition. Forexample, the information 810 may indicate a mode of prediction encodingperformed on a partition indicated by the information 800, i.e., anintra mode 812, an inter mode 814, or a skip mode 816.

The information 820 indicates a transformation unit to be based on whentransformation is performed on a current coding unit. For example, thetransformation unit may be a first intra transformation unit 822, asecond intra transformation unit 824, a first inter transformation unit826, or a second intra transformation unit 828.

The image data and encoding information extractor 220 of the videodecoding apparatus 200 may extract and use the information 800, 810, and820 for decoding, according to each deeper coding unit

FIG. 9 is a diagram of deeper coding units according to depths,according to an embodiment of the present invention.

Split information may be used to indicate a change of a depth. The spiltinformation indicates whether a coding unit of a current depth is splitinto coding units of a lower depth.

A prediction unit 910 for prediction encoding a coding unit 900 having adepth of 0 and a size of 2N_0×2N_0 may include partitions of a partitiontype 912 having a size of 2N_0×2N_0, a partition type 914 having a sizeof 2N_0×N_0, a partition type 916 having a size of N_0×2N_0, and apartition type 918 having a size of N_0×N_0. FIG. 9 only illustrates thepartition types 912 through 918 which are obtained by symmetricallysplitting the prediction unit 910, but a partition type is not limitedthereto, and the partitions of the prediction unit 910 may includeasymmetrical partitions, partitions having a predetermined shape, andpartitions having a geometrical shape.

Prediction encoding is repeatedly performed on one partition having asize of 2N_0×2N_0, two partitions having a size of 2N_0×N_0, twopartitions having a size of N_0×2N_0, and four partitions having a sizeof N_0×N_0, according to each partition type. The prediction encoding inan intra mode and an inter mode may be performed on the partitionshaving the sizes of 2N_0×2N_0, N_0×2N_0, 2N_0×N_0, and N_0×N_0. Theprediction encoding in a skip mode is performed only on the partitionhaving the size of 2N_0×2N_0.

Errors of encoding including the prediction encoding in the partitiontypes 912 through 918 are compared, and the least encoding error isdetermined among the partition types. If an encoding error is smallestin one of the partition types 912 through 916, the prediction unit 910may not be split into a lower depth.

If the encoding error is the smallest in the partition type 918, a depthis changed from 0 to 1 to split the partition type 918 in operation 920,and encoding is repeatedly performed on coding units 930 having a depthof 2 and a size of N_0×N_0 to search for a minimum encoding error.

A prediction unit 940 for prediction encoding the coding unit 930 havinga depth of 1 and a size of 2N_1×2N_1 (=N_0×N_0) may include partitionsof a partition type 942 having a size of 2N_1×2N_1, a partition type 944having a size of 2N_1×N_1, a partition type 946 having a size ofN_1×2N_1, and a partition type 948 having a size of N_1×N_1.

If an encoding error is the smallest in the partition type 948, a depthis changed from 1 to 2 to split the partition type 948 in operation 950,and encoding is repeatedly performed on coding units 960, which have adepth of 2 and a size of N_2×N_2 to search for a minimum encoding error.

When a maximum depth is d, split operation according to each depth maybe performed up to when a depth becomes d−1, and split information maybe encoded as up to when a depth is one of 0 to d−2. In other words,when encoding is performed up to when the depth is d−1 after a codingunit corresponding to a depth of d−2 is split in operation 970, aprediction unit 990 for prediction encoding a coding unit 980 having adepth of d−1 and a size of 2N_(d−1)×2N_(d−1) may include partitions of apartition type 992 having a size of 2N_(d−1)×2N_(d−1), a partition type994 having a size of 2N_(d−1)×N_(d−1), a partition type 996 having asize of N_(d−1)×2N_(d−1), and a partition type 998 having a size ofN_(d−1)×N_(d−1).

Prediction encoding may be repeatedly performed on one partition havinga size of 2N_(d−1)×2N_(d−1), two partitions having a size of2N_(d−1)×N_(d−1), two partitions having a size of N_(d−1)×2N_(d−1), fourpartitions having a size of N_(d−1)×N_(d−1) from among the partitiontypes 992 through 998 to search for a partition type having a minimumencoding error.

Even when the partition type 998 has the minimum encoding error, since amaximum depth is d, a coding unit CU_(d−1) having a depth of d−1 is nolonger split to a lower depth, and a coded depth for the coding unitsconstituting a current maximum coding unit 900 is determined to be d−1and a partition type of the current maximum coding unit 900 may bedetermined to be N_(d−1)×N_(d−1). Also, since the maximum depth is d anda minimum coding unit 980 having a lowermost depth of d−1 is no longersplit to a lower depth, split information for the minimum coding unit980 is not set.

A data unit 999 may be a ‘minimum unit’ for the current maximum codingunit. A minimum unit according to an embodiment of the present inventionmay be a rectangular data unit obtained by splitting a minimum codingunit 980 by 4. By performing the encoding repeatedly, the video encodingapparatus 100 may select a depth having the least encoding error bycomparing encoding errors according to depths of the coding unit 900 todetermine a coded depth, and set a corresponding partition type and aprediction mode as an encoding mode of the coded depth.

As such, the minimum encoding errors according to depths are compared inall of the depths of 1 through d, and a depth having the least encodingerror may be determined as a coded depth. The coded depth, the partitiontype of the prediction unit, and the prediction mode may be encoded andtransmitted as information about an encoding mode. Also, since a codingunit is split from a depth of 0 to a coded depth, only split informationof the coded depth is set to 0, and split information of depthsexcluding the coded depth is set to 1.

The image data and encoding information extractor 220 of the videodecoding apparatus 200 may extract and use the information about thecoded depth and the prediction unit of the coding unit 900 to decode thepartition 912. The video decoding apparatus 200 may determine a depth,in which split information is 0, as a coded depth by using splitinformation according to depths, and use information about an encodingmode of the corresponding depth for decoding.

FIGS. 10 through 12 are diagrams for describing a relationship betweencoding units 1010, prediction units 1060, and transformation units 1070,according to an embodiment of the present invention.

The coding units 1010 are coding units having a tree structure,corresponding to coded depths determined by the video encoding apparatus100, in a maximum coding unit. The prediction units 1060 are partitionsof prediction units of each of the coding units 1010, and thetransformation units 1070 are transformation units of each of the codingunits 1010.

When a depth of a maximum coding unit is 0 in the coding units 1010,depths of coding units 1012 and 1054 are 1, depths of coding units 1014,1016, 1018, 1028, 1050, and 1052 are 2, depths of coding units 1020,1022, 1024, 1026, 1030, 1032, and 1048 are 3, and depths of coding units1040, 1042, 1044, and 1046 are 4.

In the prediction units 1060, some encoding units 1014, 1016, 1022,1032, 1048, 1050, 1052, and 1054 are obtained by splitting the codingunits in the encoding units 1010. In other words, partition types in thecoding units 1014, 1022, 1050, and 1054 have a size of 2N×N, partitiontypes in the coding units 1016, 1048, and 1052 have a size of N×2N, anda partition type of the coding unit 1032 has a size of N×N. Predictionunits and partitions of the coding units 1010 are smaller than or equalto each coding unit.

Transformation or inverse transformation is performed on image data ofthe coding unit 1052 in the transformation units 1070 in a data unitthat is smaller than the coding unit 1052. Also, the coding units 1014,1016, 1022, 1032, 1048, 1050, and 1052 in the transformation units 1070are different from those in the prediction units 1060 in terms of sizesand shapes. In other words, the video encoding and decoding apparatuses100 and 200 may perform intra prediction, motion estimation, motioncompensation, transformation, and inverse transformation individually ona data unit in the same coding unit.

Accordingly, encoding is recursively performed on each of coding unitshaving a hierarchical structure in each region of a maximum coding unitto determine an optimum coding unit, and thus coding units having a treestructure may be obtained. Encoding information may include splitinformation about a coding unit, information about a partition type,information about a prediction mode, and information about a size of atransformation unit. Table 1 shows the encoding information that may beset by the video encoding and decoding apparatuses 100 and 200.

TABLE 1 Split Information 0 (Encoding on Coding Unit having Size of2Nx2N and Current Depth of d) Size of Transformation Unit Split SplitPartition Type Information 0 Information 1 Symmetrical Asymmetrical ofof Prediction Partition Partition Transformation Transformation SplitMode Type Type Unit Unit Information 1 Intra 2Nx2N 2NxnU 2Nx2N NxNRepeatedly Inter 2NxN 2NxnD (Symmetrical Encode Skip Nx2N nLx2N Type)Coding Units (Only NxN nRx2N N/2xN/2 having Lower 2Nx2N) (AsymmetricalDepth of d + 1 Type)

The entropy encoder 120 of the video encoding apparatus 100 may outputthe encoding information about the coding units having a tree structure,and the entropy decoder 210 of the video decoding apparatus 200 mayparse a received bitstream and extract the encoding information aboutthe coding units having a tree structure from the received bitstream.

Split information indicates whether a current coding unit is split intocoding units of a lower depth. If split information of a current depth dis 0, a depth, in which a current coding unit is no longer split into alower depth, is a coded depth, and thus information about a partitiontype, prediction mode, and a size of a transformation unit may bedefined for the coded depth. If the current coding unit is further splitaccording to the split information, encoding is independently performedon four split coding units of a lower depth.

A prediction mode may be one of an intra mode, an inter mode, and a skipmode. The intra mode and the inter mode may be defined in all partitiontypes, and the skip mode is defined only in a partition type having asize of 2N×2N.

The information about the partition type may indicate symmetricalpartition types having sizes of 2N×2N, 2N×N, N×2N, and N×N, which areobtained by symmetrically splitting a height or a width of a predictionunit, and asymmetrical partition types having sizes of 2N×nU, 2N×nD,nL×2N, and nR×2N, which are obtained by asymmetrically splitting theheight or width of the prediction unit. The asymmetrical partition typeshaving the sizes of 2N×nU and 2N×nD may be respectively obtained bysplitting the height of the prediction unit in 1:n and n:1, and theasymmetrical partition types having the sizes of nL×2N and nR×2N may berespectively obtained by splitting the width of the prediction unit in1:n and n:1. Here, n is an integer higher than 1.

The size of the transformation unit may be set to be two types in theintra mode and two types in the inter mode. In other words, if splitinformation of the transformation unit is 0, the size of thetransformation unit may be 2N×2N, which is the size of the currentcoding unit. If split information of the transformation unit is 1, thetransformation units may be obtained by splitting the current codingunit. Also, if a partition type of the current coding unit having thesize of 2N×2N is a symmetrical partition type, a size of atransformation unit may be N×N, and if the partition type of the currentcoding unit is an asymmetrical partition type, the size of thetransformation unit may be N/2×N/2.

The encoding information about coding units having a tree structure mayinclude at least one of a coding unit corresponding to a coded depth, aprediction unit, and a minimum unit. The coding unit corresponding tothe coded depth may include at least one of a prediction unit and aminimum unit containing the same encoding information.

Accordingly, it is determined whether adjacent data units are includedin the same coding unit corresponding to the coded depth by comparingencoding information of the adjacent data units. Also, a correspondingcoding unit corresponding to a coded depth is determined by usingencoding information of a data unit, and thus a distribution of codeddepths in a maximum coding unit may be determined.

Accordingly, if a current coding unit is predicted based on encodinginformation of adjacent data units, encoding information of data unitsin deeper coding units adjacent to the current coding unit may bedirectly referred to and used.

Alternatively, if a current coding unit is predicted based on encodinginformation of adjacent data units, data units adjacent to the currentcoding unit are searched using encoded information of the data units,and the searched adjacent coding units may be referred for predictingthe current coding unit.

FIG. 13 is a diagram for describing a relationship between a codingunit, a prediction unit or a partition, and a transformation unit,according to encoding mode information of Table 1.

A maximum coding unit 1300 includes coding units 1302, 1304, 1306, 1312,1314, 1316, and 1318 of coded depths. Here, since the coding unit 1318is a coding unit of a coded depth, split information may be set to 0.Information about a partition type of the coding unit 1318 having a sizeof 2N×2N may be set to be one of a partition type 1322 having a size of2N×2N, a partition type 1324 having a size of 2N×N, a partition type1326 having a size of N×2N, a partition type 1328 having a size of N×N,a partition type 1332 having a size of 2N×nU, a partition type 1334having a size of 2N×nD, a partition type 1336 having a size of nL×2N,and a partition type 1338 having a size of nR×2N.

When the partition type is set to be symmetrical, i.e. the partitiontype 1322, 1324, 1326, or 1328, a transformation unit 1342 having a sizeof 2N×2N is set if split information (TU size flag) of a transformationunit is 0, and a transformation unit 1344 having a size of N×N is set ifa TU size flag is 1.

When the partition type is set to be asymmetrical, i.e., the partitiontype 1332, 1334, 1336, or 1338, a transformation unit 1352 having a sizeof 2N×2N is set if a TU size flag is 0, and a transformation unit 1354having a size of N/2×N/2 is set if a TU size flag is 1.

Transformation unit split information TU size flag may be a type of atransformation index, and a size of a transformation unit correspondingto a transformation index may vary according to a prediction unit typeor partition type of a coding unit.

For example, when the partition type is set to be symmetrical, i.e. thepartition type 1322, 1324, 1326, or 1328, a transformation unit 1342having a size of 2N×2N is set if a TU size flag of a transformation unitis 0, and a transformation unit 1344 having a size of N×N is set if a TUsize flag is 1.

When the partition type is set to be asymmetrical, i.e., the partitiontype 1332, 1334, 1336, or 1338, a transformation unit 1352 having a sizeof 2N×2N is set if a TU size flag is 0, and a transformation unit 1354having a size of N/2×N/2 is set if a TU size flag is 1.

Referring to FIG. 9, the TU size flag is a flag having a value or 0 or1, but the TU size flag is not limited to 1 bit, and a transformationunit may be hierarchically split having a tree structure while the TUsize flag increases from 0. The TU size flag may be used as an exampleof a transformation index.

In this case, the size of a transformation unit that has been actuallyused may be expressed by using a TU size flag of a transformation unit,together with a maximum size and minimum size of the transformationunit. The video encoding apparatus 100 is capable of encoding maximumtransformation unit size information, minimum transformation unit sizeinformation, and a maximum TU size flag. The result of encoding themaximum transformation unit size information, the minimum transformationunit size information, and the maximum TU size flag may be inserted intoan SPS. The video decoding apparatus 200 may decode video by using themaximum transformation unit size information, the minimum transformationunit size information, and the maximum TU size flag.

For example, if the size of a current coding unit is 64×64 and a maximumtransformation unit size is 32×32, then the size of a transformationunit may be 32×32 when a TU size flag is 0, may be 16×16 when the TUsize flag is 1, and may be 8×8 when the TU size flag is 2.

As another example, if the size of the current coding unit is 32×32 anda minimum transformation unit size is 32×32, then the size of thetransformation unit may be 32×32 when the TU size flag is 0. Here, theTU size flag cannot be set to a value other than 0, since the size ofthe transformation unit cannot be less than 32×32.

As another example, if the size of the current coding unit is 64×64 anda maximum TU size flag is 1, then the TU size flag may be 0 or 1. Here,the TU size flag cannot be set to a value other than 0 or 1.

Thus, if it is defined that the maximum TU size flag is‘MaxTransformSizeIndex’, a minimum transformation unit size is‘MinTransformSize’, and a transformation unit size is ‘RootTuSize’ whenthe TU size flag is 0, then a current minimum transformation unit size‘CurrMinTuSize’ that can be determined in a current coding unit, may bedefined by Equation (1):CurrMinTuSize=max(MinTransformSize,RootTuSize/(2^MaxTransformSizeIndex))  (1)

Compared to the current minimum transformation unit size ‘CurrMinTuSize’that can be determined in the current coding unit, a transformation unitsize ‘RootTuSize’ when the TU size flag is 0 may denote a maximumtransformation unit size that can be selected in the system. In Equation(1), ‘RootTuSize/(2^MaxTransformSizeIndex)’ denotes a transformationunit size when the transformation unit size ‘RootTuSize’, when the TUsize flag is 0, is split a number of times corresponding to the maximumTU size flag, and ‘MinTransformSize’ denotes a minimum transformationsize. Thus, a smaller value from among‘RootTuSize/(2^MaxTransformSizeIndex)’ and ‘MinTransformSize’ may be thecurrent minimum transformation unit size ‘CurrMinTuSize’ that can bedetermined in the current coding unit.

The maximum transformation unit size RootTuSize may vary according tothe type of a prediction mode.

For example, if a current prediction mode is an inter mode, then‘RootTuSize’ may be determined by using Equation (2) below. In Equation(2), ‘MaxTransformSize’ denotes a maximum transformation unit size, and‘PUSize’ denotes a current prediction unit size.RootTuSize=min(MaxTransformSize,PUSize)  (2)

That is, if the current prediction mode is the inter mode, thetransformation unit size ‘RootTuSize’ when the TU size flag is 0, may bea smaller value from among the maximum transformation unit size and thecurrent prediction unit size.

If a prediction mode of a current partition unit is an intra mode,‘RootTuSize’ may be determined by using Equation (3) below. In Equation(3), ‘PartitionSize’ denotes the size of the current partition unit.RootTuSize=min(MaxTransformSize,PartitionSize)  (3)

That is, if the current prediction mode is the intra mode, thetransformation unit size ‘RootTuSize’ when the TU size flag is 0 may bea smaller value from among the maximum transformation unit size and thesize of the current partition unit.

However, the current maximum transformation unit size ‘RootTuSize’ thatvaries according to the type of a prediction mode in a partition unit isjust an example and the present invention is not limited thereto.

Hereinafter, a process of entropy encoding a syntax element, which isperformed by the entropy encoder 120 of the video encoding apparatus 100of FIG. 1, and a process of entropy encoding a syntax element, which isperformed by the entropy decoder 220 of the video decoding apparatus 200of FIG. 2 will be described in detail.

As described above, the video encoding apparatus 100 and the videodecoding apparatus 200 according to the embodiments of the presentinvention perform encoding and decoding by splitting a maximum codingunit by using a coding unit equal to or less than the maximum codingunit. A prediction unit and a transformation unit used during predictionand transformation processes may be determined based on a costindependently from another data unit. As such, data units having a treestructure may be configured by determining an optimum coding unit asencoding is recursively performed according to coding units having ahierarchical structure included in a maximum coding unit. In otherwords, coding units having a tree structure, and prediction units andtransformation units having a tree structure may be determined accordingto a maximum coding unit. For decoding, hierarchical informationindicating a hierarchical structure of data units, and information otherthan the hierarchical information for decoding may be transmitted.

The hierarchical information is required to determine the coding units,prediction units, and transformation units having the tree structuredescribed above with reference to FIGS. 10 through 12, and includes asize of a maximum coding unit, a coded depth, partition information of aprediction unit, a split flag indicating whether a coding unit is split,size information of a transformation unit, and TU size flag indicatingwhether a transformation unit is split. The information other than thehierarchical information includes prediction mode information ofintra/inter prediction applied to each prediction unit, motion vectorinformation, prediction direction information, color componentinformation applied to a corresponding data unit when a plurality ofcolor components are used, and texture information, such as atransformation coefficient. Hereinafter, the hierarchical informationand the information other than the hierarchical information transmittedfor decoding may be referred to as syntax elements to be entropyencoded.

FIG. 14 is a block diagram of an entropy encoding apparatus 1400according to an embodiment of the present invention. The entropyencoding apparatus 1400 corresponds to the entropy encoder 120 of thevideo encoding apparatus 100 of FIG. 1.

Referring to FIG. 14, the entropy encoding apparatus 1400 includes abinarizer 1410, a context modeler 1420, and a binary arithmetic encoder1430. Also, the binary arithmetic encoder 1430 includes a regular codingengine 1432 and a bypass coding engine 1434.

Syntax elements input to the entropy encoding apparatus 1400 may not bea binary value. When the syntax elements are not a binary value, thebinarizer 1410 binarizes the syntax elements and outputs a bin stringformed of binary values of 0 and 1. A bin indicates each bit of a streamformed of 0 or 1, and each bin is encoded via context adaptive binaryarithmetic coding (CABAC). When a syntax element is data in whichfrequencies of 0 and 1 are the same, the syntax element is output to thebypass coding engine 1434 that does not use a probability value, and isencoded.

The context modeler 1420 provides a probability model of a currentcoding symbol to the regular coding engine 1432. In detail, the contextmodeler 1420 outputs a binary probability for encoding a binary value ofthe current coding symbol to the binary arithmetic encoder 1430. Thecurrent coding symbol denotes a binary value when a current syntaxelement to be encoded is binarized.

In order to determine a context model for a first syntax element of acurrent coding unit to be encoded, the context modeler 1420 maydetermine a context model to be applied to the first syntax elementbased on information about a second syntax element that is usable in thesame current coding unit and different from the first syntax element. Ingeneral H.264 standards, in order to determine a context model for acertain syntax element of a current block, information about a syntaxelement that is same as the certain syntax element is obtained from aneighboring block, and a context to be applied to the certain syntaxelement is determined. However, in order to determine a context modelfor general entropy encoding as such, a same type of syntax element isobtained from a neighboring block, and thus such a syntax element of theneighboring block needs to be stored in a predetermined memory on asystem and the predetermined memory needs to be accessed to determine acontext model for entropy encoding a syntax element of a current block.However, according to an embodiment of the present invention, thecontext modeler 1420 does not use information about a neighboring codingunit but selects a context model for entropy encoding a first syntaxelement by using a second syntax element usable in a current codingunit, and thus a number of accessing a memory may be reduced and a sizeof the memory for storing syntax elements may be reduced.

Also, as described below, the context modeler 1420 may obtain a firstsyntax element having the same type as the first syntax element of thecurrent coding unit from a neighboring coding unit, and determine acontext model for entropy encoding the first syntax element of thecurrent coding unit by combining the second syntax element obtained fromthe current coding unit and the first syntax element obtained from theneighboring coding unit.

A context model is a probability model of a bin, and includesinformation about which one of 0 and 1 corresponds to an MPS and an LPS,and a probability of the MPS or LPS.

The regular coding engine 1432 performs binary arithmetic encoding on acurrent coding symbol based on information about the MPS and LPS, andinformation about the probability of the MPS or LPS provided from thecontext modeler 1420.

A process of determining a context model for entropy encoding syntaxelements, which is performed by the context modeler 1420 of FIG. 14 willnow be described in detail.

FIG. 15 is a block diagram of the context modeler 1420 of FIG. 14.

Referring to FIG. 15, the context modeler 1420 includes an additionalinformation obtainer 1421 and a probability model determiner 1422.

The additional information obtainer 1421 obtains information aboutsecond syntax elements of a current coding unit usable while entropyencoding a first syntax element of a current data unit. For example, thesecond syntax element includes information about a size of the currentdata unit, relative size information indicating a relative size of thecurrent data unit including the first syntax element in relation to adata unit in a higher layer and having a larger size than the currentdata unit, color type information of a color picture to which a dataunit belongs, and prediction mode information. The second syntax elementis additional information of the current coding unit usable at a pointof time when the first syntax element is entropy encoded.

The probability model determiner 1422 determines a context model used toentropy encode a first syntax model based on obtained additionalinformation about second syntax elements. In detail, when a secondsyntax element usable in entropy encoding a first syntax element that iscurrently encoded has ‘a’ state values, wherein ‘a’ is a positiveinteger, the probability model determiner 1422 determines a contextindex indicating one of ‘a’ context models according to the state valuesof the second syntax element to determine a context model used toentropy encode a first syntax element of a current coding unit. Forexample, when a size of a current data unit to which a first syntaxelement that is currently encoded has 5 state values of 2×2, 4×4, 8×8,16×16, 32×32, and 64×64, and the size of the current data unit is usedas a second syntax element, the probability model determiner 1422 mayset 5 or less context models according to the size of the current dataunit, which is the second syntax element, and may determine and output acontext index indicating a context model used during entropy encodingthe first syntax element of the current data unit based on the size ofthe current data unit, i.e., the second syntax element.

Alternatively, the probability model determiner 1422 may determine acontext model for entropy encoding a first syntax element of a currentcoding unit by using a plurality of second syntax elements. In detail,when n denotes a number of second syntax elements used to determine acontext model, wherein n denotes an integer, and a_(i) denotes a numberof state values of each of the n second syntax elements, wherein i is aninteger from 1 to n, one context model used to entropy encode the firstsyntax element may be determined from among a plurality of contextmodels based on a₁*a₂* . . . *a_(n), that is a number of combinations ofthe state values of the second syntax elements.

For example, when it is assumed that a CBF flag coded_block_flag that isa flag indicating whether a non-zero transformation coefficient existsin a transformation unit has 12 context models, a context model forentropy encoding a CBF flag of a current transformation unit may bedetermined based on color component information of a picture to whichthe current transformation unit belongs, and size information of thecurrent transformation unit. It is assumed that the color componentinformation is one of Y, Cb, and Cr, and an index color_type_indexindicating a color component is set to 0, 1, and 2 respectively withrespect to Y, Cb, and Cr. Also, it is assumed that an indexTU_Block_size_index indicating a size of a transformation unit is set to0, 1, 2, and 3 respectively with respect to 4×4, 8×8, 16×16, and 32×32.In this case, the probability model determiner 1422 may obtain a contextindex CtxIdx indicating a context model for entropy encoding the CBFflag of the current transformation unit by using the indexcolor_type_index and the index TU_Block_size_index, which are othersyntax elements, according to an equation:CtxIdx=color_type_index*4+TU_Block_size_index. As described above, byselecting a context model using information about other syntax elementsin the same current coding unit, a number of accessing a memory and asize of the memory may be reduced.

In the above example, a CBF flag uses size information of atransformation unit and color component information, but a first syntaxelement to be entropy encoded and a second syntax element used to selecta context model may be variously set by using currently usableadditional information of a data unit.

The additional information obtainer 1421 obtains a first syntax elementthat is the same type as the first syntax element to be currentlyentropy encoded, from a neighboring data unit of the current data unit,as well as the additional information of the current data unit. Theprobability model determiner 1422 may determine a probability model forentropy encoding the first syntax element of the current data unit byusing the second syntax element of the current coding unit, which isdifferent from the first syntax element obtained from the neighboringcoding unit. For example, it is assumed that the first syntax element ofthe current data unit to be encoded is a split flag indicating whetherthe current data unit is split. In this case, the probability modeldeterminer 1422 may obtain a split flag from a left or upper neighboringdata unit, and select a context model for entropy encoding a split flagof the current data unit through an equation:ctxIdx=split_flag_left+(depth>>1), by using other syntax elementsexcluding a split flag split_flag_neighbor of the neighboring data unitand the split flag of the current data unit, for example, by using adepth of the current data unit, as the second syntax element. Meanwhile,the additional information obtainer 1421 may obtain information aboutthe first syntax element having the same type as the first syntaxelement of the current data unit from the left neighboring data unit ofthe current data unit in order to entropy encode the first syntaxelement of the current data unit. Since information about a data unit isgenerally stored in and read from a buffer in a line unit, a size of thebuffer may be reduced by obtaining information about first syntaxelements from a current data unit and left neighboring data unit of thecurrent data unit rather than using information about first syntaxelements of a current data unit and a top neighboring data unit of thecurrent data unit. Also, considering a processing order of a rasterscan, etc., the size of the buffer may be reduced by using informationabout the left neighboring data unit of the current data unit, which ison the same line as the current data unit and processed before thecurrent data unit, rather than using information about the topneighboring data unit, while entropy encoding the first syntax elementof the current data unit.

A process of entropy encoding information of coding units having ahierarchical structure described above with reference to FIGS. 1 through13, as a first syntax element will now be described in detail.

FIG. 16 is a diagram for describing a data unit 1600 having ahierarchical structure and data unit split information 33 having ahierarchical structure, according to an embodiment of the presentinvention. Here, a data unit may be any one of a coding unit, aprediction unit, and a transformation unit described above.

As described above, according to an embodiment of the present invention,encoding is performed by using coding units, prediction units, andtransformation units having hierarchical structures. In FIG. 16, thedata unit 1600 having a size of N×N and in level 0 that is an uppermostlevel is split into data units 31 a through 31 d in level 1 that is alevel lower than the uppermost level, and the data units 31 a and 31 dare respectively split into data units 32 a through 32 d and 32 ethrough 32 h in level 2 that is a level lower than level 1. A split flagindicating whether each data unit is split into data units in a lowerlevel may be used as a symbol for indicating a hierarchical structure ofdata units. For example, when a split flag of a current data unit is 1,the current data unit may be split into a lower level, and when a splitflag is 0, the current data unit may not be split.

As the data units 30, 31 a through 31 d, and 32 a through 32 h form ahierarchical structure, split information of the transformation units30, 31 a through 31 d, and 32 a through 32 h may also form ahierarchical structure. In other words, the data unit split information33 includes data unit split information 34 in level 0 that is anuppermost level, data unit split information 35 a through 35 d in level1, and data unit split information 36 a through 36 h in level 2.

The data unit split information 34 in level 0 in the data unit splitinformation 33 having the hierarchical structure denotes that the dataunit 30 in level 0 is split. Similarly, the data unit split information35 a and 35 d in level 1 respectively denote that the data units 31 aand 31 d in level 1 are split into the data units 32 a through 32 d and32 e through 32 h in level 2.

The data units 31 b and 31 c in level 1 are no longer split, andcorrespond to leaf nodes that do not include a child node in a treestructure. Similarly, the data units 32 a through 32 h in level 2correspond to leaf nodes that are no longer split into lower levels.

As such, a split flag indicating whether a data unit in an upper levelis split into data units in lower levels may be used as a symbolindicating a hierarchical structure of data units.

While entropy encoding a split flag indicating a hierarchical structureof data units, the entropy encoder 120 may entropy encode split flags ofdata units of all nodes, or entropy encode only split flags of dataunits corresponding to leaf nodes that do not have a child node.

FIGS. 17A and 17B are reference diagrams of symbols indicating ahierarchical structure of data units, according to embodiments of thepresent invention.

In FIGS. 17A and 17B, it is assumed that a flag is a split flag of adata unit indicating whether a data unit of each node is split into dataunits in a lower level, in the data unit split information 33 of FIG.16. Referring to FIG. 17A, the entropy encoder 120 may entropy encodesplit flags flag0, flag1 a through flag1 d, and flag2 a through flag2 hof the data units 30, 31 a through 31 d, and 32 a through 32 h in alllevels. Alternatively, as shown in FIG. 17B, the entropy encoder 120 mayentropy encode only the split flags flag1 b, flag1 c, and flag2 athrough flag2 h of the data units 31 b, 31 c, and 32 a through 32 hcorresponding to leaf nodes that do not have a child node, because it isdetermined whether a data unit in an upper level is split based onwhether a split flag exists in a data unit in a lower level. Forexample, in FIG. 17B, when the split flags flag2 a through flag2 d ofthe data units 32 a through 32 d in level 2 exist, the data unit 31 a inlevel 1 that is the upper level of level 2 is obviously split into thedata units 32 a through 32 d, and thus the split flag flag1 a of thedata unit 31 a may not be encoded.

The video decoding apparatus 200 determine a hierarchical structure ofdata units by extracting and reading the split flags flag, flag1 athrough flag1 d, and flag2 a through flag2 h of the data units 30, 31 athrough 31 d, and 32 a through 32 h in all levels, according to a symbolhierarchical decoding mode. Alternatively, when only the split flagsflag1 b, flag1 c, and flag2 a through flag2 h of the data units 31 b, 31c, and 32 a through 32 h corresponding to leaf nodes are encoded, thevideo decoding apparatus 200 may determine a hierarchical structure ofdata units by determining the split flags flag0 and flag1 a throughflag1 d of the data units 30 and 31 a through 31 d that are not encoded,based on the extracted split flags flag1 b, flag1 c, and flag2 a throughflag2 h.

The context modeler 1420 may determine one of a plurality of contextmodels for entropy encoding split flags indicating a hierarchicalstructure of data units, based on state values according to acombination of additional information.

FIGS. 18A and 18B are diagrams of context indexes for determining acontext model according to a combination of additional information,according to embodiments of the present invention.

Referring to FIG. 18A, the context modeler 1420 may determine a contextmodel to be used for entropy encoding a split flag of a current dataunit, based on other usable additional information excluding a splitflag of a data unit. When it is assumed that n pieces of additionalinformation each has a_(i) state values, wherein a_(i) is an integer andi is an integer from 1 to n, the context modeler 1420 may determine acontext model to be used for entropy encoding a split flag from among aplurality of context models, based on a context index CtxIdx determinedaccording to a combination of a₁×a₂× . . . ×a_(n) state values. As shownin FIG. 18A, when it is assumed that values of a₁×a₂× . . . ×a_(n)respectively have combination values of S₁, S₂, . . . , and S_(m), onecontext index is determined based on such m state values of (S₁, S₂, . .. , and S_(m)).

Alternatively, as shown in FIG. 18B, the context modeler 1420 maydetermine a context index according to a combination value of additionalinformation by grouping the m state values of (S₁, S₂, . . . , andS_(m)).

FIG. 19 is a reference diagram of a context model according to anembodiment of the present invention.

The probability model determiner 1422 determines and outputs informationabout binary signals corresponding to an MPS and an LPS from amongbinary signals of 0 and 1, and about a probability value of the MPS orLPS by using the context index CtxIdx determined according to thecombination of the additional information. Referring to FIG. 19, theprobability model determiner 1422 stores probabilities of binary signalsin a lookup table 1900, and outputs information about a probabilityvalue corresponding to the context index CtxIdx determined according tothe combination of the additional information to the regular codingengine 1432. In detail, when a context index CtxIdx indicating a contextmodel to be applied to a current symbol is determined based oncombination of additional information of a current data unit, theprobability model determiner 1422 may determine an index pStateIdx of aprobability table corresponding to the context index CtxIdx, and abinary signal corresponding to an MPS. Also, the context modeler 1420may similarly determine a context model for entropy encoding a syntaxelement of a current data unit from among a plurality of context modes,according to a combination of additional information of the current dataunit and additional information of a neighboring data unit adjacent tothe current data unit.

FIG. 20 is a graph of a probability value of an MPS according to anembodiment of the present invention.

A probability table shows probability values of an MPS, and when anindex pStateIdx of the probability table is assigned, a probabilityvalue of a corresponding MPS is determined. For example, when thecontext modeler 1420 determines and outputs a context index CtxIdx of acontext model to be used for encoding of a current symbol to be 1, theprobability model determiner 1422 determines the index pStateIndx to be7 and the MPS to be 0, which correspond to the context index CtxIdx 1from among the context models shown in FIG. 19. Also, the probabilitymodel determiner 1422 determines a probability value of the MPScorresponding to the index pStateIdx 7 from among the probability valuesof the MPS pre-set as shown in FIG. 20. Since a sum of the probabilityvalues of MPS and LPS is 1, once the probability value of MPS or LPS isdetermined, the remaining probability value may be determined.

Meanwhile, the probability model determiner 1422 may update the indexpStateIdx based on which one of the MPS and the LPS is encoded wheneverone bin is encoded by the regular coding engine 1432, thereby updatingthe probability values of the MPS and LPS while considering a generationstatistic of a binary signal. For example, the probability modeldeterminer 1422 may set transIdxMPS that is a value of the indexpStateIdx after an update while encoding the MPS, and tranIdxLPS that isa value of the index pStateIdx after an update while encoding the LPS ina form of a lookup table while considering encoding results of theregular coding engine 1432, and then update the index pStateIdx perencoding operation to change the probability value of the MPS.

The regular coding engine 1432 entropy encodes and outputs a binarysignal of a symbol about a current syntax element based on informationabout a binary signal and probability value corresponding to an MPS orLPS.

FIG. 21 is a diagram for describing a binary arithmetic encodingoperation performed by the regular coding engine 1430 of FIG. 14. InFIG. 21, it is assumed that a split flag indicating a hierarchicalstructure of data units has a binary value of 010, a probability of 1 is0.2, and a probability of 0 is 0.8. Here, the probabilities of 1 and 0are updated whenever a binary value is encoded, but for convenience ofdescription, it is assumed that the probabilities are fixed.

Referring to FIG. 21, when an initial bin value “0” is encoded fromamong a binary value “010”, [0.0 to 0.8] that is lower 80% of an initialsection [0.0 to 1.0] is updated as a new section, and when a next binvalue “1” is encoded, [0.64 to 0.8] that is upper 20% of [0.0 to 0.8] isupdated as a new section. Then, when a last bin value “0” is encoded,[0.64 to 0.768] that is lower 80% of [0.64 to 0.8] is set as a newsection. In a binary number 0.11 corresponding to a real number 0.75between the final section [0.64˜0.768], “11” below a decimal point isoutput in a bitstream corresponding to the binary value “010” of thesplit flag.

FIG. 22 is a flowchart illustrating an entropy encoding method accordingto an embodiment of the present invention.

Referring to FIG. 22, the hierarchical encoder 110 encodes a video basedon data units having a hierarchical structure, in operation 2210. Inoperation 2220, the context modeler 1420 determines a context model tobe used for entropy encoding a first syntax element of a current dataunit to be entropy encoded based on at least one second syntax elementof the current data unit, wherein the second syntax element is usableand different from the first syntax element of the current data unit. Asdescribed above, when a number of the second syntax elements is n,wherein n is an integer, and a number of state values of each of the nsecond syntax elements is a_(i), wherein i is an integer from 1 to n,the context modeler 1420 may determine a context model indicated by acontext index CtxIdx determined based on a₁*a₂* . . . a_(n) that is anumber of combinations of the state values of the second sytax elements.

In operation 2230, the regular coding engine 1432 entropy encodes thefirst syntax element of the current data unit by using the determinedcontext model.

FIG. 23 is a block diagram of an entropy decoding apparatus 2300according to an embodiment of the present invention.

Referring to FIG. 23, the entropy decoding apparatus 2300 includes acontext modeler 2310, a regular decoder 2320, a bypass decoder 2330, anda de-binarizer 2340. The entropy decoding apparatus 2300 performsinverse processes of the entropy encoding process performed by theentropy encoding apparatus 1400 described above.

A symbol encoded according to bypass coding is output to and decoded bythe bypass decoder 2330, and a symbol encoded according to regularcoding is decoded by the regular decoder 2320. The regular decoder 2320performs arithmetic decoding on a binary value of a current codingsymbol based on a context model provided by the context modeler 2310.

Like the context modeler 1420 of FIG. 14, the context modeler 2310determines a context model used for entropy decoding a first syntaxelement of a current data unit based on at least one second syntaxelement of the current data unit, which is usable and different from thefirst syntax element of the current data unit. As described above, thecontext modeler 2310 may obtain information about a first syntax elementhaving the same type as the first syntax element of the current dataunit from a neighboring data unit adjacent to the current data unit, anddetermine the context model for entropy decoding the first syntaxelement of the current data unit by using the first syntax elementobtained from the neighboring data unit and the second syntax elementobtained from the current data unit.

An operation of the context modeler 2310 of FIG. 23 is the same as thatof the context modeler 1420 of FIG. 14, except that the operation of thecontext modeler 2310 is performed in terms of decoding, and thus detailsthereof are omitted herein.

The de-binarizer 2340 restores bin strings restored by the regulardecoder 2320 or the bypass decoder 2330 to a syntax element.

FIG. 24 is a flowchart illustrating an entropy decoding method accordingto an embodiment of the present invention.

Referring to FIG. 24, the syntax element extractor 210 extracts syntaxelements of a picture encoded based on data units having a hierarchicalstructure by parsing an encoded bitstream, in operation 2410. Inoperation 2420, the context modeler 2310 of the entropy decodingapparatus 2300 determines a context model for entropy decoding a firstsyntax element of a current data unit to be entropy decoded based on atleast one second syntax element of the current data unit, which isusable and different from the first syntax element of the current dataunit. As described above, the context modeler 2310 may obtain a firstsyntax element having the same type as the first syntax element of thecurrent data unit from a left or top neighboring data unit of thecurrent data unit, as well as the second syntax element of the currentdata unit, and select the context model for entropy decoding the firstsyntax element of the current data unit by combining the first syntaxelement obtained from the left or top neighboring data unit and thesecond syntax element obtained from the current data unit. In operation2430, the regular decoder 2320 entropy decodes the first syntax elementof the current data unit by using the determined context model.

The invention may also be embodied as computer readable codes on acomputer readable recording medium. The computer readable recordingmedium is any data storage device that may store data which may bethereafter read by a computer system. Examples of the computer readablerecording medium include read-only memory (ROM), random-access memory(RAM), CD-ROMs, magnetic tapes, floppy disks, optical data storagedevices, etc. The computer readable recording medium may also bedistributed over network coupled computer systems so that the computerreadable code is stored and executed in a distributed fashion.

While this invention has been particularly shown and described withreference to preferred embodiments thereof, it will be understood bythose of ordinary skill in the art that various changes in form anddetails may be made therein without departing from the spirit and scopeof the invention as defined by the appended claims. Therefore, the scopeof the invention is defined not by the detailed description of theinvention but by the appended claims, and all differences within thescope will be construed as being included in the present invention.

What is claimed is:
 1. A video decoding apparatus comprising: a receiverwhich obtains, from a bitstream, a split transformation flag indicatingwhether a transformation unit included in a coding unit is split, andobtains a current transformation unit from the coding unit based on thesplit transformation flag; a context modeler which determines a contextmodel using a context model index determined based on a size of thecurrent transformation unit and a value of a color component index of apicture to which the transformation unit belongs, without using anysyntax elements from blocks neighboring the coding unit, wherein thecolor component index is set with respect to a luminance colorcomponent, a first chrominance color component, and a second chrominancecolor component, and the color component index for the luminance colorcomponent has a value of zero, the color component index for the firstchrominance color component has a value of one, and the color componentindex for the second chrominance color component has a value of two; andan entropy decoder which obtains a transformation coefficient flagindicating whether at least one non-zero coefficient is included in ablock of the current transformation unit by entropy-decoding thebitstream using Context Adaptive Binary Arithmetic Coding (CABAC) basedon the context model, and obtains a transformation coefficient includedin the current transformation unit based on the transformationcoefficient flag, wherein the context model includes informationindicating a most probable symbol (MPS), wherein the receiver, thecontext modeler and the entropy decoder are implemented by at least oneprocessor, wherein a picture comprising the coding unit is split into aplurality of maximum coding units according to information about amaximum size of the coding unit, a maximum coding unit, of the pluralityof maximum coding units, is hierarchically split into one or more codingunits of depths including at least one of a current depth and a lowerdepth according to split information, when the split informationindicates a split for the current depth, a coding unit of the currentdepth is split into four coding units of the lower depth, independentlyfrom neighboring coding units, and when the split information indicatesa non-split for the current depth, one or more transformation units areobtained from the coding unit of the current depth.